IBM 704
   HOME

TheInfoList



OR:

The IBM 704 is a large digital
mainframe computer A mainframe computer, informally called a mainframe or big iron, is a computer used primarily by large organizations for critical applications like bulk data processing for tasks such as censuses, industry and consumer statistics, enterpris ...
introduced by IBM in 1954. It was the first mass-produced computer with hardware for floating-point arithmetic. The IBM 704 ''Manual of operation'' states:
The type 704 Electronic Data-Processing Machine is a large-scale, high-speed electronic calculator controlled by an internally stored program of the single address type.
The 704 at that time was thus regarded as "pretty much the only computer that could handle complex math". The 704 was a significant improvement over the earlier IBM 701 in terms of architecture and implementation. Like the 701, the 704 uses
vacuum-tube A vacuum tube, electron tube, valve (British usage), or tube (North America), is a device that controls electric current flow in a high vacuum between electrodes to which an electric potential difference has been applied. The type known as a ...
logic circuitry, but increased the instruction size from 18-bit to
36-bit 36-bit computers were popular in the early mainframe computer era from the 1950s through the early 1970s. Starting in the 1960s, but especially the 1970s, the introduction of 7-bit ASCII and 8-bit EBCDIC led to the move to machines using 8-bit ...
, the same as the memory's word size. Changes from the 701 include the use of
magnetic-core memory Magnetic-core memory was the predominant form of random access, random-access computer memory for 20 years between about 1955 and 1975. Such memory is often just called core memory, or, informally, core. Core memory uses toroids (rings) of a ...
instead of
Williams tube The Williams tube, or the Williams–Kilburn tube named after inventors Freddie Williams and Tom Kilburn, is an early form of computer memory. It was the first random-access digital storage device, and was used successfully in several early co ...
s, floating-point arithmetic instructions, 15-bit addressing and the addition of three
index register An index register in a computer's CPU is a processor register (or an assigned memory location) used for pointing to operand addresses during the run of a program. It is useful for stepping through strings and arrays. It can also be used for hol ...
s. To support these new features, the instructions were expanded to use the full 36-bit word. The new
instruction set In computer science, an instruction set architecture (ISA), also called computer architecture, is an abstract model of a computer. A device that executes instructions described by that ISA, such as a central processing unit (CPU), is called an ' ...
, which is not compatible with the 701, became the base for the "scientific architecture" subclass of the IBM 700/7000 series computers. The 704 can execute up to 12,000 floating-point additions per second. IBM produced 123 type 704 systems between 1955 and 1960.


Landmarks

The programming languages FORTRAN and LISP were first developed for the 704, as was the SAP assembler—''
Symbolic Assembly Program The Symbolic Assembly Program (SAP) is an assembler program for the IBM 704 computer. It was written by Roy Nutt at United Aircraft Corporation, and was distributed by the SHARE user's group beginning in 1956 as the ''Share Assembly Program''. S ...
'', later distributed by SHARE as ''SHARE Assembly Program''.
MUSIC Music is generally defined as the art of arranging sound to create some combination of form, harmony, melody, rhythm or otherwise expressive content. Exact definitions of music vary considerably around the world, though it is an aspect ...
, the first computer music program, was developed on the IBM 704 by
Max Mathews Max Vernon Mathews (November 13, 1926 in Columbus, Nebraska, USA – April 21, 2011 in San Francisco, CA, USA) was a pioneer of computer music. Biography Mathews studied electrical engineering at the California Institute of Technology and the Ma ...
. In 1962, physicist
John Larry Kelly, Jr. John Larry Kelly Jr. (December 26, 1923 – March 18, 1965), was an American scientist who worked at Bell Labs. From a "system he'd developed to analyze information transmitted over networks," from Claude Shannon, Claude Shannon's earlier work o ...
created one of the most famous moments in the history of
Bell Labs Nokia Bell Labs, originally named Bell Telephone Laboratories (1925–1984), then AT&T Bell Laboratories (1984–1996) and Bell Labs Innovations (1996–2007), is an American industrial research and scientific development company owned by mult ...
by using an IBM 704 computer to synthesize speech. Kelly's voice recorder synthesizer ''
vocoder A vocoder (, a portmanteau of ''voice'' and ''encoder'') is a category of speech coding that analyzes and synthesizes the human voice signal for audio data compression, multiplexing, voice encryption or voice transformation. The vocoder was ...
'' recreated the song ''
Daisy Bell "Daisy Bell (Bicycle Built for Two)" is a song written in 1892 by British songwriter Harry Dacre with the well-known chorus "Daisy, Daisy / Give me your answer, do. / I'm half crazy / all for the love of you", ending with the words "a bicycle bu ...
'', with musical accompaniment from
Max Mathews Max Vernon Mathews (November 13, 1926 in Columbus, Nebraska, USA – April 21, 2011 in San Francisco, CA, USA) was a pioneer of computer music. Biography Mathews studied electrical engineering at the California Institute of Technology and the Ma ...
. Arthur C. Clarke was coincidentally visiting friend and colleague John Pierce at the Bell Labs Murray Hill facility at the time of this
speech synthesis Speech synthesis is the artificial production of human speech. A computer system used for this purpose is called a speech synthesizer, and can be implemented in software or hardware products. A text-to-speech (TTS) system converts normal languag ...
demonstration, and Clarke was so impressed that six years later he used it in the climactic scene of his novel and screenplay for '' 2001: A Space Odyssey'', where the ''
HAL 9000 HAL 9000 is a fictional artificial intelligence character and the main antagonist in Arthur C. Clarke's ''Space Odyssey'' series. First appearing in the 1968 film '' 2001: A Space Odyssey'', HAL ( Heuristically programmed ALgorithmic computer) ...
'' computer sings the same song.
Edward O. Thorp Edward Oakley Thorp (born August 14, 1932) is an American mathematics professor, author, hedge fund manager, and blackjack researcher. He pioneered the modern applications of probability theory, including the harnessing of very small correlatio ...
, a math instructor at MIT, used the IBM 704 as a research tool to investigate the probabilities of winning while developing his
blackjack Blackjack (formerly Black Jack and Vingt-Un) is a casino banking game. The most widely played casino banking game in the world, it uses decks of 52 cards and descends from a global family of casino banking games known as Twenty-One. This fami ...
gaming theory.Discovery channel documentary with interviews by Ed and Vivian Thorp He used FORTRAN to formulate the equations of his research model. The IBM 704 at the MIT Computation Center was used as the official tracker for the Smithsonian Astrophysical Observatory Operation Moonwatch in the fall of 1957. IBM provided four staff scientists to aid Smithsonian Astrophysical Observatory scientists and mathematicians in the calculation of satellite orbits: Dr.  Giampiero Rossoni, Dr. John Greenstadt, Thomas Apple and Richard Hatch. The
Los Alamos Scientific Laboratory Los Alamos National Laboratory (often shortened as Los Alamos and LANL) is one of the sixteen research and development laboratories of the United States Department of Energy (DOE), located a short distance northwest of Santa Fe, New Mexico, in ...
(LASL) developed an early
monitor Monitor or monitor may refer to: Places * Monitor, Alberta * Monitor, Indiana, town in the United States * Monitor, Kentucky * Monitor, Oregon, unincorporated community in the United States * Monitor, Washington * Monitor, Logan County, West ...
named ''SLAM'' to enable
batch processing Computerized batch processing is a method of running software programs called jobs in batches automatically. While users are required to submit the jobs, no other interaction by the user is required to process the batch. Batches may automatically ...
.


Registers

The IBM 704 has a 38-bit accumulator, a 36-bit multiplier quotient register, and three 15-bit
index register An index register in a computer's CPU is a processor register (or an assigned memory location) used for pointing to operand addresses during the run of a program. It is useful for stepping through strings and arrays. It can also be used for hol ...
s. The contents of the index registers are subtracted from the base address, so the index registers are also called "decrement registers". All three index registers can participate in an instruction: the 3-bit ''tag'' field in the instruction is a bit map specifying which of the registers participate in the operation. However, when more than one index register is selected, then their contents are ORed – not added – together before the decrement takes place. This behavior persisted in later scientific-architecture machines (such as the IBM 709 and IBM 7090) until the IBM 7094. The IBM 7094, introduced in 1962, increased the number of index registers to seven and only selected one at a time; the "or" behavior remains available in a compatibility mode of the IBM 7094.


Instruction and data formats

There are two instruction formats, referred to as "Type A" and "Type B". Most instructions were of type B. Type A instructions have, in sequence, a 3-bit ''prefix'' (instruction code), a 15-bit ''decrement'' field, a 3-bit ''tag'' field, and a 15-bit ''address'' field. There are conditional jump operations based on the values in the index registers specified in the ''tag'' field. Some instructions also subtract the ''decrement'' field from the contents of the index registers. The implementation requires that the second 2 bits of the instruction code be non-zero, giving a total of six possible type A instructions. One (STR, instruction code binary 101) was not implemented until the IBM 709. Type B instructions have, in sequence, a 12-bit instruction code (with bits 2 and 3 set to 0 to distinguish them from type A instructions), a 2-bit ''flag'' field, 4 unused bits, a 3-bit ''tag'' field, and a 15-bit ''address'' field. * Fixed-point numbers are stored in binary sign/magnitude format. * Single-precision
floating-point In computing, floating-point arithmetic (FP) is arithmetic that represents real numbers approximately, using an integer with a fixed precision, called the significand, scaled by an integer exponent of a fixed base. For example, 12.345 can b ...
numbers have a magnitude sign, an 8-bit excess-128 exponent and a 27-bit magnitude. * Alphanumeric characters were usually 6-bit BCD, packed six to a word. The instruction set implicitly subdivides the data format into the same fields as type A instructions: prefix, decrement, tag and address. Instructions exist to modify each of these fields in a data word without changing the remainder of the word, though the ''Store Tag'' instruction was not implemented on the IBM 704. The original implementation of Lisp uses the ''address'' and ''decrement'' fields to store the head and tail of a linked list respectively. The primitive functions '' car'' ("contents of the address part of register") and '' cdr'' ("contents of the decrement part of register") were named after these fields.


Memory and peripherals

Controls are included in the 704 for: one 711 Punched Card Reader, one 716 Alphabetic Printer, one 721 Punched Card Recorder, five 727 Magnetic Tape Units and one 753 Tape Control Unit, one 733
Magnetic Drum Drum memory was a magnetic data storage device invented by Gustav Tauschek in 1932 in Austria. Drums were widely used in the 1950s and into the 1960s as computer memory. For many early computers, drum memory formed the main working memory of ...
Reader and Recorder, and one 737 Magnetic Core Storage Unit. Total mass was about . The 704 itself came with a control console having 36 assorted control switches or buttons and 36 data-input switches, one for each bit in a register. The control console essentially allows only setting the binary values of the registers with switches and seeing the binary state of the registers displayed in the pattern of many small neon lamps, appearing much like modern LEDs. For human interaction with the computer, programs would be entered on punched cards initially rather than at the console, and human-readable output would be directed to the printer. The
IBM 740 The IBM 740 CRT Recorder was announced in 1954 and used with the IBM 701, IBM 704, and IBM 709 computers to draw vector graphics images, point by point, on 35 mm photographic film (i.e. microfilm). The 740 film recorder contained digital-to-analo ...
Cathode Ray Tube Output Recorder was also available, which is a 21-inch
vector display A vector monitor, vector display, or calligraphic display is a display device used for computer graphics up through the 1970s. It is a type of CRT, similar to that of an early oscilloscope. In a vector display, the image is composed of drawn li ...
with a very long phosphor persistence time of 20 seconds for human viewing, together with a 7-inch display receiving the same signal as the larger display but with a fast-decaying phosphor designed to be photographed with an attached camera. The 737 Magnetic Core Storage Unit serves as RAM and provides 4,096 36-bit words, the equivalent of 18,432 bytes. The 727 Magnetic Tape Units store over 5 million 6-bit characters per reel.


Reliability

In its day, the 704 was an exceptionally reliable machine. Being a vacuum-tube machine, however, the IBM 704 had very poor reliability by today's standards. On average, the machine failed around every 8 hours, which limited the program size that the first Fortran compilers could successfully translate because the machine would fail before a successful compilation of a large program.


See also

*
GM-NAA I/O The GM-NAA I/O input/output system of General Motors and North American Aviation was the first operating system for the IBM 704 computer. It was created in 1956 by Robert L. Patrick of General Motors Research and Owen Mock of North Americ ...
*
List of vacuum-tube computers Vacuum-tube computers, now called first-generation computers, are programmable digital computers using vacuum-tube logic circuitry. They were preceded by systems using electromechanical relays and followed by systems built from discrete transi ...
*
Vocaloid is a singing voice synthesizer software product. Its signal processing part was developed through a joint research project led by Kenmochi Hideki at the Pompeu Fabra University in Barcelona, Spain, in 2000 and was not originally intended to b ...


References


Further reading

* Charles J. Bashe, Lyle R. Johnson, John H. Palmer, Emerson W. Pugh, ''IBM's Early Computers'' (MIT Press, Cambridge, 1986) *
Steven Levy Steven Levy (born 1951) is an American journalist and Editor at Large for ''Wired'' who has written extensively for publications on computers, technology, cryptography, the internet, cybersecurity, and privacy. He is the author of the 1984 book ...
, '' Hackers: Heroes of the Computer Revolution''


External links


Oral history interview with Gene Amdahl
Charles Babbage Institute The IT History Society (ITHS) is an organization that supports the history and scholarship of information technology by encouraging, fostering, and facilitating archival and historical research. Formerly known as the Charles Babbage Foundation, ...
, University of Minnesota, Minneapolis.
Amdahl Amdahl may refer to: People * Einar Amdahl (1888-1974), Norwegian theologist * Bjarne Amdahl (1903-1968), Norwegian pianist and composer * Douglas K. Amdahl (1919–2010), American lawyer and judge from Minnesota * Gene Amdahl (1922–2015), for ...
discusses his role in the design of several computers for IBM including the STRETCH, IBM 701, and IBM 704. He discusses his work with
Nathaniel Rochester Nathaniel Rochester (February 21, 1752 – May 17, 1831) was an American Revolutionary War soldier, and land speculator, most noted for founding the settlement which would become Rochester, New York. Early life Nathaniel Rochester was born ...
and IBM's management of the design process for computers. {{DEFAULTSORT:Ibm 704
704 __NOTOC__ Year 704 ( DCCIV) was a leap year starting on Tuesday (link will display the full calendar) of the Julian calendar. The denomination 704 for this year has been used since the early medieval period, when the Anno Domini calendar era be ...
7 0704 36-bit computers Computer-related introductions in 1954